/*!
 * \file ice_core.h
 *
 * \brief 共通定义
 *
 * All Rights Reserved Copyright (C) 2014 broada,Co.,Ltd.\n
 * 共通使用的宏和结构体
 *
 * \version 1.0
 * \author jikw
 * \date 2017/6/16
 *
 */

#ifndef _ICE_CORE_H_
#define _ICE_CORE_H_

#include "conntrack.h"
#include "module.h"

#define ICE_HASH_SIZE    100             //哈希桶的最大尺寸
#define ICE_TIMEOUT      5*60            //单位秒

#define MAGIC            "\x49\x63\x65\x50"   //magic
//messageType
#define MESSAGETYPE0     '\x00'          //请求消息
#define MESSAGETYPE1     '\x01'          //批量请求消息
#define MESSAGETYPE2     '\x02'          //应答消息
#define MESSAGETYPE3     '\x03'          //验证连接消息
#define MESSAGETYPE4     '\x04'          //关闭连接消息
//compressionStatus
#define COMPRESSION0     '\x00'          //未压缩
#define COMPRESSION1     '\x01'          //未压缩但可以接受压缩应答
#define COMPRESSION2     '\x02'          //已压缩可以接受压缩应答

int ice_detect(Conntrack *p_st_conn, Apm_packet *p_st_packet);
int ice_analysis(Conntrack *p_st_conn, Apm_packet *p_st_packet, Frhash_header *p_st_hash_report);
int ice_session_destroy(void *p_private_session);
void ice_list_node_free(Frlist_node *p_st_node);

#endif